namespace mplat {
    export interface INativeInfo {
        ids: string[];
        /** 原生广告间隔多久才能重新获取，默认60s */
        intervalTime?: number;
        /** 原生误触概率，默认为0，最大为1 */
        errorClickRate?: number;
        /** 原生误触每次生命周期最大次数，默认为0，优先每天 */
        errorClickMaxCount?: number;
        /** 原生误触每天最大次数，默认为0 */
        daliyErrorClickMaxCount?: number;
        /** 原生延迟几秒显示，默认为0 */
        delayShow?: number;
        /** 原生每次生命周期显示的最大次数，默认为8，优先每天 */
        maxTimes?: number;
        /** 原生每天显示的最大次数，默认为8 */
        daliyMaxTimes?: number;
        /** 每次调用load之前，是否都销毁原先的原生广告，默认为false */
        beforeLoadDestroy?: boolean;
        /** 错误 */
        onErr?: (err?) => void;
        /** 加载完成，一般可以用于埋点 */
        loadSuccess?: (res?) => void;
        /** (全局的)关闭原生广告时进行的回调 */
        closeNativeAd?: () => void;
    }
    export interface INativeAd {
        /** 设置banner的数据 */
        setInfo(info: INativeInfo);

        adInfo: INativeInfo;

        /** 加载完原生广告的数据后，需要开发者自行显示出广告
         * @param adId 当adId为number时，则是从ids里去取下标的数据，如果为string，则是直接使用这个id
         */
        loadNativeAd(success?: (res) => void, fail?: () => void, adId?: string | number);

        /** 点击原生的时候，要开发者手动调用此接口 */
        reportAdClick(adId?: any)

        /** 业务如果需要销毁的话，开发者自己调用此接口 */
        destroy();

        /** 业务调用关闭原生界面时，开发者要手动调用此接口 */
        closeNativeAd(adId?: any);
    }
}